﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LowLevelGraphics.Filter
{
    /// <summary>
    /// IM = imreconstruct(marker,mask) performs morphological reconstruction of the image marker under the image mask. 
    /// marker and mask can be two intensity images or two binary images with the same size. 
    /// The returned image IM is an intensity or binary image, respectively. 
    /// marker must be the same size as mask, and its elements must be less than or equal to the corresponding elements of mask.
    /// 
    /// By default, imreconstruct uses 8-connected neighborhoods for 2-D images and 26-connected neighborhoods for 3-D images.
    /// For higher dimensions, imreconstruct uses conndef(ndims(I),'maximal').
    /// 
    /// IM = imreconstruct(marker,mask,conn) performs morphological reconstruction with the specified connectivity. 
    /// conn can have any of the following scalar values.    /// </summary>
    public class imreconstruct : BaseImageFilter
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="imreconstruct"/> class.
        /// </summary>
        public imreconstruct()
        {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="imreconstruct"/> class.
        /// </summary>
        /// <param name="_imreconstruct">The _imreconstruct.</param>
        internal imreconstruct(imreconstruct _imreconstruct)
        {
        }

        /// <summary>
        /// This is used to clone a filter, each filter must implement it's own clone functionality
        /// </summary>
        /// <returns></returns>
        public override object Clone()
        {
            return new imreconstruct(this);
        }
    }
}
